package com.yuw.control;

import com.yuw.bean.UserInfoBean;
import com.yuw.modal.UserModel;
import com.yuw.utils.MyUtils;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet("/deleteJump")
public class UserinfoDeleteServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1 获取表单数据
        String strUserId = req.getParameter("id");
        // 2 调用service方法进行删除操作
        /*
        删除有两种方式：
            物理删除：直接删除数据库表中的数据，数据删除之后是不可恢复的；
            逻辑删除：通过修改逻辑状态位来表示数据是删除状态，数据库中的数据不会进行删除；【update修改状态为的操作】【实际项目中推荐】
                    注意：如果使用逻辑删除，则需要在查询的时候，将逻辑标志为作为查询条件进行过滤；
         */
        // 使用物理删除，删除数据
        //int i = MyUtils.getNewInstance(UserModel.class).deleteUserInfoById(strUserId);
        // 使用逻辑删除，删除数据
        int i = MyUtils.getNewInstance(UserModel.class).logicallyDeleteUserInfoById(strUserId);

        // 3 删除之后的数据显示-跳转到查询显示页面即可
        // 调用Model层进行查询操作，将用户数据查询出来，保存到session中
        List<UserInfoBean> lstUsers = MyUtils.getNewInstance(UserModel.class).queryUserInfoAll();
        // 在跳转之前，需要将显示在成功页面的数据进行session缓存
        req.getSession().setAttribute("lstUsers", lstUsers);

        req.getRequestDispatcher("WEB-INF/viewpages/userInfoB/UserInfoAddDetail.jsp").forward(req, resp);

    }
}
